When attempting to increase performance for graphics processing units (GPUs), one solution is to apply various techniques to reduce memory bandwidth consumption. Bandwidth reduction is also becoming increasingly important as the performance growth rate for processing power is much larger than performance growth rate for bandwidth and latency for random access memory (RAM).
Texture compression is one popular way of reducing bandwidth requirements. By storing textures in compressed form in memory and transferring blocks of the compressed data over the bus, the texture bandwidth is reduced substantially.
A texture is usually comprised of four channels: red, green, blue and alpha. The alpha channel was originally intended for storing opacity information, ranging from completely transparent to fully opaque. However, with the advent of pixel shaders, the alpha channel can now be used to store any type of information that can be useful during rendering alongside the normal color data. Examples of such information include material properties, such as specularity or shininess, and geometrical information, such as bump maps. It has also been more and more common to use textures containing only an alpha channel, i.e., without the red, green and blue channels, in order to store scalar data such as specular maps etc.
The current de-facto standard algorithms for alpha compression are the ones built into the DXTC/S3TC texture compression standard [1]. These algorithms contain two different alpha compression modes, both of which compress the alpha channel from the typical original size of eight bits per pixel down to four bits per pixel.
Thus, the quality of the DXTC-compressed alpha channels is very high. In some applications, using four bits per pixel, might be excessive. In contrast, the three color channels are compressed down to four bits per pixel combined, with a total of eight bits per pixel for compressed RGBA textures. The information contained in the alpha channel, thus, receives by far the highest quality of the four channels, even though the data stored therein generally requires less precision than the color of the texture.